package com.mornd.gulimall.seckill.scheduled;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @author: mornd
 * @dateTime: 2023/8/29 - 8:24
 */

@Slf4j
//@Component
@EnableScheduling
@EnableAsync
public class TestSchedule {

//    @Scheduled(cron = "* * * ? * 2") // 1-7 代表周一到周日
//    @Scheduled(cron = "*/5 * * * * ?") // 任意秒启动，然后每5秒启动一次
//    @Scheduled(cron = "1 * * * * ?") // 每分钟执行一次
    @Scheduled(cron = "* * * * * ?") // 自动配置类 TaskSchedulingAutoConfiguration
    /**
     * 自动配置类 TaskExecutionAutoConfiguration，如果容器存在自定义线程池，就用自定义的线程池
     * 并且只用到核心线程池的大小
     * 默认不配置自定义线程池，就使用properties里面的配置，使用默认的8个核心线程执行
     */
    @Async
    public void run() throws Exception {
        log.info("hello");
        Thread.sleep(3000); // 默认是阻塞的
    }
}
